home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / postgres / postgre4.z / postgre4 / src / utils / adt / smgr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-27  |  1.1 KB  |  68 lines

  1. /*
  2.  * smgr.c -- storage manager type
  3.  */
  4.  
  5. #include "tmp/c.h"
  6. #include "tmp/postgres.h"
  7. #include "utils/log.h"
  8.  
  9. RcsId("$Header: /private/postgres/src/utils/adt/RCS/smgr.c,v 1.1 1991/07/03 00:52:14 mao Exp $");
  10.  
  11. typedef struct smgrid {
  12.     char *smgr_name;
  13.     int2 smgr_id;
  14. } smgrid;
  15.  
  16. static smgrid StorageManager[] = {
  17.     "magnetic disk",    0,
  18.     "sony jukebox",     1
  19. };
  20.  
  21. static int NStorageManagers = lengthof(StorageManager);
  22.  
  23. int2
  24. smgrin(s)
  25.     char *s;
  26. {
  27.     int i;
  28.  
  29.     for (i = 0; i < NStorageManagers; i++) {
  30.     if (strcmp(s, StorageManager[i].smgr_name) == 0)
  31.         return(StorageManager[i].smgr_id);
  32.     }
  33.     elog(WARN, "smgrin: illegal storage manager name %s", s);
  34. }
  35.  
  36. char *
  37. smgrout(i)
  38.     int2 i;
  39. {
  40.     char *s;
  41.     int len;
  42.  
  43.     if (i >= NStorageManagers || i < 0)
  44.     elog(WARN, "Illegal storage manager id %d", i);
  45.  
  46.     s = (char *) palloc(strlen(StorageManager[i].smgr_name) + 1);
  47.     strcpy(s, StorageManager[i].smgr_name);
  48.     return (s);
  49. }
  50.  
  51. bool
  52. smgreq(a, b)
  53.     int2 a, b;
  54. {
  55.     if (a == b)
  56.     return (true);
  57.     return (false);
  58. }
  59.  
  60. bool
  61. smgrne(a, b)
  62.     int2 a, b;
  63. {
  64.     if (a == b)
  65.     return (false);
  66.     return (true);
  67. }
  68.